/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package datos;

/**
 *
 * @author May
 */
import java.sql.CallableStatement;
import datos.OperacionesBase;
import java.awt.Image;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import javax.swing.JOptionPane;
import negocios.Apreciacion;
import negocios.Atributo_Propio;
import negocios.Clasificador;
import negocios.Clasificador_Prenda;
import negocios.Color_Prenda;
import negocios.Comentario;
import negocios.Compartir;
import negocios.Conjunto;
import negocios.Conjunto_Prenda;
import negocios.Conjunto_Usuario;
import negocios.Defecto;
import negocios.Estado_Prenda;
import negocios.Genero_Usuario;
import negocios.Grado;
import negocios.Medida;
import negocios.Medida_Prenda;
import negocios.Medidas_Usuario;
import negocios.Mide;
import negocios.Prenda;
import negocios.Prenda_Atributo;
import negocios.Usuario;


public class BaseDeDatosDB {
 private Connection connection = null;
  private ResultSet resultSet = null;
    private Statement statement = null;
    DatabaseManager db = new DatabaseManager();
        
   
    public Genero_Usuario buscarGenero(int codigo) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "select * from genero_usuario where id ='" + codigo + "'";
        ResultSet resultado = db.seleccion(query);//cada tupla, recibir reulset y pasar al array pa q no se borre x cerrarse la conexin
        Genero_Usuario miGenero = null;
        if (resultado != null) {
            resultado.next();
            miGenero = new Genero_Usuario();
            miGenero.setId(resultado.getInt("id"));
            miGenero.setDescripcion(resultado.getString("descripcion"));
        }
        db.cerrarConexion();
        return miGenero;
    }
   
   //////////////////////////////////////// APRECIACIONES //////////////////////////////////////////
    public boolean grabarApreciacion(Apreciacion miApreciacion) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into apreciacion values('" + miApreciacion.getAtributo() + "')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    }

    public int modificarApreciacion(Apreciacion miApreciacion) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "update apreciacion set atributo='" + miApreciacion.getAtributo()+ 
        "' where id='" + miApreciacion.getId() + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }

    public int eliminarApreciacion(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "delete from cliente where cedula='" + cedula + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    /////////////////////////////        GENEROS         //////////////////////////////////////////////////////////
     public ArrayList listarGenero() throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "select * from genero_usuario ";
        ResultSet resultado = db.seleccion(query);
        Genero_Usuario miGenero = null;
        ArrayList todos = new ArrayList();
        while (resultado.next()) {
            miGenero = new Genero_Usuario();
            miGenero.setId(resultado.getInt(1));
            miGenero.setDescripcion(resultado.getString(2));
            todos.add(miGenero);  
        }
        db.cerrarConexion();
        return todos;
    }
      
      public ArrayList listarIds() throws SQLException {
        
        OperacionesBase db = new OperacionesBase();
        String query = "select id from genero_usuario ";
        ResultSet resultado = db.seleccion(query);
        int micodigo = 0;
        ArrayList todos = new ArrayList();
        while (resultado.next()) {
            micodigo = (resultado.getInt(1));
            todos.add(micodigo);
        }
        db.cerrarConexion();
        return todos;
    }
      ///////////////////////////USUARIOS ////////////////////////////////////////////////////////////////
      
    public boolean grabarUsuario(Usuario miUsuario,String ruta) throws SQLException {
        DatabaseManager d=new DatabaseManager(); 
       if (d.grabarUSER(miUsuario,ruta)){
           return true;
       }
       else return false;
    } 
       public ArrayList listarUsuario() throws SQLException {  
          ArrayList todos = new ArrayList();  
       try {
           connection= db.getConnection();
            statement = connection.createStatement();
            resultSet = statement.executeQuery("SELECT cedula,apodo,id_genero FROM usuario " );
          while (resultSet.next())
          {  
             Usuario img = new Usuario();
             img.setCedula( resultSet.getString("cedula") ) ;
             img.setApodo( resultSet.getString("apodo") ) ;

             img.setGenero(buscarGenero(resultSet.getInt("id_genero")));
        
             
            todos.add(img);
          }
       }
       catch (SQLException ex) {
          System.err.println(ex.getMessage());
       }
       return todos;
    }  
}